Everything MCP 서버
Everything
Everything MCP 서버는 MCP 프로토콜의 모든 기능을 시험하기 위한 서버입니다. 실용적인 서버가 아니라 MCP 클라이언트 개발자를 위한 테스트 서버입니다. 이 서버는 프롬프트, 도구, 리소스, 샘플링 등을 구현하여 MCP 기능을 보여줍니다.
특징
- 다양한 기능을 테스트하기 위한 여러 도구 제공
- 프롬프트, 리소스, 샘플링 기능 시연
- 긴 작업 진행 상황 알림 기능
- 메타데이터 제공을 위한 주석(annotation) 기능 시연
- 로그 메시지 전송 기능
API
도구
echo
입력 메시지를 그대로 반환하는 간단한 도구
- 입력:
-
message(문자열): 반환할 메시지 -
반환: 입력된 메시지가 포함된 텍스트 내용
add
두 숫자를 더함
- 입력:
a(숫자): 첫 번째 숫자-
b(숫자): 두 번째 숫자 -
반환: 더하기 계산 결과 텍스트
longRunningOperation
긴 작업에 대한 진행 상황 알림을 시연
- 입력:
duration(숫자, 기본값: 10): 작업 시간(초)-
steps(숫자, 기본값: 5): 진행 단계 수 -
반환: 작업 시간과 단계가 포함된 완료 메시지
- 실행 중 진행 상황 알림 전송
sampleLLM
MCP 샘플링 기능을 사용한 LLM 샘플링 기능 시연
- 입력:
prompt(문자열): LLM에 전송할 프롬프트-
maxTokens(숫자, 기본값: 100): 생성할 최대 토큰 수 -
반환: 생성된 LLM 응답
getTinyImage
작은 테스트 이미지 반환
-
입력: 필요 없음
-
반환: Base64로 인코딩된 PNG 이미지 데이터
printEnv
모든 환경 변수 출력
-
입력: 필요 없음
-
반환: 모든 환경 변수의 JSON 문자열
annotatedMessage
콘텐츠에 대한 메타데이터를 제공하기 위해 주석을 사용하는 방법 시연
- 입력:
messageType(열거형: "error" | "success" | "debug"): 다른 주석 패턴을 보여줄 메시지 유형-
includeImage(불리언, 기본값: false): 예제 이미지 포함 여부 -
반환: 다양한 주석이 있는 콘텐츠:
- 오류 메시지: 높은 우선순위(1.0), 사용자와 어시스턴트 모두에게 표시
- 성공 메시지: 중간 우선순위(0.7), 사용자 중심
- 디버그 메시지: 낮은 우선순위(0.3), 어시스턴트 중심
-
선택적 이미지: 중간 우선순위(0.5), 사용자 중심
-
주석 예시:
{ "priority": 1.0, "audience": ["user", "assistant"] }
getResourceReference
MCP 클라이언트가 사용할 수 있는 리소스 참조 반환
- 입력:
-
resourceId(숫자, 1-100): 참조할 리소스의 ID -
반환: 다음이 포함된 리소스 참조:
- 텍스트 소개
type: "resource"가 포함된 임베디드 리소스- 리소스 URI 사용 방법에 대한 텍스트 지침
리소스
서버는 두 가지 형식으로 100개의 테스트 리소스를 제공합니다:
짝수 번호 리소스:
- 일반 텍스트 형식
- URI 패턴:
test://static/resource/{even_number} - 내용: 간단한 텍스트 설명
홀수 번호 리소스:
- 바이너리 블롭 형식
- URI 패턴:
test://static/resource/{odd_number} - 내용: Base64로 인코딩된 바이너리 데이터
리소스 기능:
- 페이지네이션 지원(페이지당 10개 항목)
- 리소스 업데이트 구독 허용
- 리소스 템플릿 시연
- 구독한 리소스 5초마다 자동 업데이트
프롬프트
simple_prompt
인수가 없는 기본 프롬프트
- 반환: 단일 메시지 교환
complex_prompt
인수 처리를 시연하는 고급 프롬프트
- 필수 인수:
-
temperature(숫자): 온도 설정 -
선택적 인수:
-
style(문자열): 출력 스타일 선호도 -
반환: 이미지가 포함된 다중 턴 대화
resource_prompt
프롬프트에 리소스 참조 임베딩을 시연
- 필수 인수:
-
resourceId(숫자): 임베드할 리소스의 ID (1-100) -
반환: 임베디드 리소스 참조가 포함된 다중 턴 대화
- 프롬프트 메시지에 리소스를 직접 포함하는 방법 보여줌
로깅
서버는 15초마다 무작위 수준의 로그 메시지를 전송합니다. 예:
{
"method": "notifications/message",
"params": {
"level": "info",
"data": "Info-level message"
}
}
사용 방법
Claude Desktop에서 사용(stdio Transport 사용)
claude_desktop_config.json에 다음을 추가하세요:
{
"mcpServers": {
"everything": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-everything"]
}
}
}
VS Code에서 사용
VS Code User Settings(JSON) 파일에 다음 JSON 블록을 추가하세요. Ctrl + Shift + P를 누르고 Preferences: Open User Settings (JSON)를 입력하여 이 작업을 수행할 수 있습니다.
선택적으로 작업 공간의 .vscode/mcp.json 파일에 추가할 수 있습니다. 이렇게 하면 다른 사람과 구성을 공유할 수 있습니다.
.vscode/mcp.json 파일에서는 mcp 키가 필요하지 않습니다.
NPX
{
"mcp": {
"servers": {
"everything": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-everything"]
}
}
}
}
소스에서 실행
HTTP+SSE Transport로 실행(2025-03-26부터 사용 중단됨)
cd src/everything
npm install
npm run start:sse
Streamable HTTP Transport로 실행
cd src/everything
npm install
npm run start:streamableHttp
설치된 패키지로 실행
설치
npm install -g @modelcontextprotocol/server-everything@latest
기본(stdio) 서버 실행
npx @modelcontextprotocol/server-everything
또는 stdio를 명시적으로 지정
npx @modelcontextprotocol/server-everything stdio
SSE 서버 실행
npx @modelcontextprotocol/server-everything sse
Streamable HTTP 서버 실행
npx @modelcontextprotocol/server-everything streamableHttp